Smart cards are small personal computing devices that are used to protect very sensitive information. Smart cards may be used to perform banking functions, provide access to health records, personalization of computer network access, secure building access, and many more functions. Smart cards are also used as subscriber identity modules (SIM) in certain mobile telephony networks.
Though they are small computers, smart cards lack input and output devices as well as power supply. Therefore, access to data and programs stored in a smart card has to be obtained through another computer to which the smart card is connected. Typically a smart card is inserted into a smart card reader attached to a host computer for input and output functions as well as power.
In such a connection scheme, the smart card and host computer operate according to a server-client model in which client programs execute on the host computer and server programs execute on the smart card. The host computer client programs call upon the smart card server programs to provide some data or other functionality provided by the smart card.
Hitherto, the dominant standard for smart cards has been the ISO-7816 standard. According to the ISO-7816 standard, communication between smart cards and host computers use a communication packet called an APDU (Application Program Data Unit When the APDU format was designed, smart cards were very small and had very limited computing power. Therefore, the APDU format was geared towards efficient and compact communication suitable for very small and not very powerful processors.
Recent times have seen much improvement in the way that computers communicate with one another. One such advance is the Remote Procedure Call (RPC) mechanism. With the RPC mechanism, it is possible to have object-oriented communications between programs running on distinct and separate nodes in a computer network. It would be desirable to use the RPC mechanism on smart cards thereby providing the increase in functionality available through the RPC mechanisms. With the increase in power of smart card processors and communications channels between smart cards and host computers, it would be possible for smart cards to use the RPC mechanism.
However, communication between two nodes on a network requires that both nodes communicate using the same protocol. Thus, smart cards that communicate using APDU communicate with terminals and hosts that use APDU. Similarly, smart cards implemented to communicate using RPC communicate with terminals and hosts that use RPC. With the large installed base of terminals that communicate using the APDU protocol, it continues to be desirable for next generation smart cards, including those that may support the RPC mechanism, to support the APDU protocol.
From the foregoing it will be apparent that there is still a need for an improved method to provide smart card-to-host communication that supports remote procedure (RPC) calls while overcoming the foresaid requirement that the host computer support the RPC protocol. More generally, it will be apparent that there is a need to support an evolution in communications protocols on smart cards while allowing support for legacy protocols.